package com.kob.service.imp.user.account;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.kob.Mapper.UserMapper;
import com.kob.pojo.User;
import com.kob.service.user.account.RegisterService;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service
public class RegisterServiceImpl implements RegisterService {
    @Autowired
    private UserMapper userMapper;

    @Autowired
    private PasswordEncoder passwordEncoder;

    @Override
    public Map<String, String> register(String username, String password, String confirmedPassword) {
        Map<String,String> map = new HashMap<>();
        if(username==null){
            map.put("error_message","用户名不能为空");
            return map;
        }
        if(password==null || confirmedPassword ==null){
            map.put("error_message","密码不能为空");
            return map;
        }
        username = username.trim();
        if(username.length()==0){
            map.put("error_message","用户名不能为空");
            return map;
        }
        if(username.length() > 100){
            map.put("error_message","用户名长度过长");
            return map;
        }
        if(password.length() > 100){
            map.put("error_message","密码长度过长");
            return map;
        }

        if(password.length()==0||confirmedPassword.length()==0){
            map.put("error_message","密码不能为空");
            return map;
        }
        if(!password.equals(confirmedPassword)){
            map.put("error_message","两次输入密码不一致");
            return map;
        }
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("username",username);
        List<User> users = userMapper.selectList(queryWrapper);
//        System.out.println(users);
//        System.out.println(users!=null);
        if(!users.isEmpty()) {
//            System.out.println("列表不为空！");
            map.put("error_message","用户名已存在");
            return map;
        }
        String encodedPassword = passwordEncoder.encode(password);
        String photo = "https://cdn.acwing.com/media/user/profile/photo/196241_lg_96791cc4d2.jpg";
        User user = new User(null,username,encodedPassword,photo,1500);
        userMapper.insert(user);
        map.put("error_message","注册成功");
        return map;
    }
}
